<%--
   jqGrid
   Copyright (c) 2013 ISPERP
   Version : 1.0.0
 --%>
<%@ tag language="java" pageEncoding="UTF-8" description="jqGrid 控件."
	trimDirectiveWhitespaces="true"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="sec"
	uri="http://www.springframework.org/security/tags"%>
<%@ attribute name="gridId" required="true" type="java.lang.String"
	description="唯一标识."%>
<%@ attribute name="gridTitle" required="false" type="java.lang.String"
	description="标题。"%>
<%@ attribute name="url" required="false" rtexprvalue="true"
	type="java.lang.String" description=" 请求的URL地址。  默认值:null"%>

<%@ attribute name="urlExtScript" required="false" rtexprvalue="true"
	type="java.lang.String" description=" 请求的URL地址urlExtScript。  默认值:null"%>
<%@ attribute name="altRows" required="false" type="java.lang.Boolean"
	rtexprvalue="false"
	description="  设置jqGrid显示为斑马线样式。就是隔行用不同的背景色区分开。默认值:true"%>
<%@ attribute name="altclass" required="false" type="java.lang.String"
	rtexprvalue="false"
	description=" 用来设置jqGrid的交替行的class。只有设置了altRows为true才有效。 默认值:ui-priority-secondary"%>
<%@ attribute name="autoencode" required="false"
	type="java.lang.Boolean" rtexprvalue="false"
	description="设置为true，会对从服务器返回的数据以及编辑模式下提交的数据进行HTML编码。比如，把小于符号转换成&lt;"%>
<%@ attribute name="autowidth" required="false" type="java.lang.Boolean"
	rtexprvalue="false"
	description="设置为true，grid的宽度会根据父元素的宽度自动重新计算。注意，这个值是在初始化的时候设定好了，如果要在运行中设置宽度，需要通过setGridWidth方法来修改。 默认值:true"%>
<%@ attribute name="caption" required="false" type="java.lang.String"
	description=" 设置Grid的标题。默认值:empty string"%>
<%@ attribute name="cellLayout" required="false"
	type="java.lang.Integer"
	description=" 本选项设置单元格的padding + border宽度. 一般情况下不要去修改。默认值:5"%>
<%@ attribute name="cellEdit" required="false" type="java.lang.Boolean"
	description="设置Cell Editing模式是否启用。默认值:false"%>
<%@ attribute name="cellsubmit" required="false" rtexprvalue="true"
	type="java.lang.String"
	description="确定Cell Editing模式下，内容保存到远程服务器还是本地数组。'remote' 或者 'clientArray'。 默认值:'remote'"%>
<%@ attribute name="cellurl" required="false" rtexprvalue="true"
	type="java.lang.Boolean" description="确定Cell Editing模式下，访问的URL。"%>
<%@ attribute name="datatype" required="false" rtexprvalue="true"
	type="java.lang.String"
	description="确定grid中显示的数据源格式。
    xml – xml数据; 
    xmlstring – 被当做字符串的xml数据； 
    json – JSON格式数据 ； 
    jsonstring – 被当做字符串的JSON数据； 
    local – 定义在客户端的数组数据；
    javascript – javascript的数据 
    function – 客户定义函数用来获取数据；
    默认值:json"%>
<%@ attribute name="deselectAfterSort" required="false"
	rtexprvalue="true" type="java.lang.Boolean"
	description="只有当datatype设置为local才有效。当排序之后，是否重新选择排序之前选中的行(多行)。   默认值:true"%>
<%@ attribute name="editurl" required="false" rtexprvalue="true"
	type="java.lang.String" description="设置编辑的URL地址。 默认值:null"%>


<%@ attribute name="emptyrecords" required="false" rtexprvalue="true"
	type="java.lang.String"
	description="设置当查询记录条数是0的情况下，jqGrid上显示的信息。只有当viewrecords选项设置为true才有效。"%>
<%@ attribute name="gridview" required="false" rtexprvalue="true"
	type="java.lang.Boolean"
	description="读取大数据集会存在速度问题。主要原因就是每一个单元格都是用了5-6条jQuery调用被插入到grid中。现在我们可以通过设置gridview选项为true来解决这个问题。设置为true之后，不能使用treeGrid，subGrid或者afterInsertRow事件。默认true "%>
<%@ attribute name="height" required="false" rtexprvalue="true"
	type="java.lang.String"
	description=" Grid的高度设置。如果设置为’100%’那么高度可以自适应。 默认值:auto"%>
<%@ attribute name="hoverrows" required="false" rtexprvalue="true"
	type="java.lang.String"
	description=" 设置为false，在grid的数据行中鼠标悬浮被禁用。  默认值:false"%>
<%@ attribute name="mtype" required="false" rtexprvalue="true"
	type="java.lang.String" description="确定请求方式。“POST”或“GET。默认值:GET"%>
<%@ attribute name="multikey" required="false" rtexprvalue="true"
	type="java.lang.Boolean"
	description=" 只有当multiselect选项设置为true的时候才有意义。定义使用哪一个键来做多选。可选值: shiftKey/altKey/ctrlKey。默认值:empty string"%>
<%@ attribute name="multiboxonly" required="false" rtexprvalue="true"
	type="java.lang.String"
	description="只有当multiselect = true时起作用，如果multiselect设置为true，那么点击行任何位置都可以选中行。当multiboxonly设置为ture之后，就只有点击行前面的checkbox才会选中行。如果点击其它没有被选中的行，那么点中的行被选择，其它行取消选择。(Yahoo模式)。    默认值:false"%>
<%@ attribute name="multiselect" required="false" rtexprvalue="true"
	type="java.lang.Boolean"
	description=" 定义grid中的数据行是否可以被多选。会在grid的最左边增加一列checkbox的选择框。默认值:false"%>
<%@ attribute name="page" required="false" rtexprvalue="true"
	type="java.lang.String"
	description="设置初始的页码。这个参数会被自动添加到URL后面，传递到后台服务器处理程序中。默认值:1"%>
<%@ attribute name="pager" required="false" rtexprvalue="true"
	type="java.lang.Boolean" description="  指定导航条是否显示分页器。默认值:true. "%>
<%@ attribute name="pgtext" required="false" rtexprvalue="true"
	type="java.lang.String"
	description=" 显示关于当前页状态的信息。第一个参数是当前页z码，第二个参数是总共的页数。 默认值:See lang file"%>
<%@ attribute name="prmNames" required="false" rtexprvalue="true"
	type="java.lang.String"
	description=" 定制传递到服务器上的Post数据的字段名称。默认值是：
    prmNames: {page:“page”,rows:“rows”, sort: “sidx”,order: “sord”, search:“_search”, nd:“nd”, npage:null}。默认值:none "%>
<%@ attribute name="postData" required="false" rtexprvalue="true"
	type="java.lang.String"
	description=" 设置直接通过url传递到服务器的其他参数。本属性的调用方式是传递一个形如{name1:value,name2:value2…}的数组。 默认值:empty array"%>
<%@ attribute name="recordtext" required="false" rtexprvalue="true"
	type="java.lang.String"
	description=" 显示在pager上面的信息。在viewrecords属性被设置为true时有效。只有在总数量大于0的时候才显示。
    这是一个用{n}格式化的显示字符串。其中第一个参数{0}代表记录的起始位置（grid显示的第一条记录在所有记录中的位置），第二个参数{1}表示grid最后一条记录在总记录中的位置，第三个参数{2}代表总的记录条数。
    比如：从{0}到{1}共{2}。默认从{0}到{1}共{2}"%>
<%@ attribute name="rowNum" required="false" rtexprvalue="true"
	type="java.lang.Integer" description="设置每一个grid的页做多显示多少条记录。 默认值:20"%>
<%@ attribute name="scrollrows" required="false" rtexprvalue="true"
	type="java.lang.Boolean"
	description=" 设置为true，当我们用setSelection选中记录时，grid会自动滚动到选中的行记录，让该行记录可见。假设grid有垂直滚动条，当我们在Form Editing编辑模式下修改记录，用编辑页的前后导航按钮定位记录的时候，当导航到一个隐藏的行记录的时候，grid会自动滚动以使让选中的行记录变成可见。默认false"%>

<%@ attribute name="shrinkToFit" required="false" rtexprvalue="true"
	type="java.lang.Boolean"
	description="确定初始化时候每列的宽度的算法。如果设置为true，表示每列的宽度按照所有列设定的宽度值的和与grid设定的宽度按比例进行缩放。如果设置为false，则列宽按照colModel中设定的宽度显示。默认值:true"%>

<%@ attribute name="sortname" required="false" rtexprvalue="true"
	type="java.lang.String"
	description="当使用xml或者json数据类型时，设置默认的排序字段名称。这个参数会被增加到url上传递到服务器端。"%>
<%@ attribute name="sortorder" required="false" rtexprvalue="true"
	type="java.lang.String"
	description=" 当使用xml或者json数据类型时，设置默认的排序方式。可选值asc或desc。默认值:asc"%>
<%@ attribute name="width" required="false" rtexprvalue="true"
	type="java.lang.String" description="宽度。当autowidth=false有效。"%>

<%@ attribute name="cusFormatterActions" required="false"
	type="java.lang.Boolean" description="这是一个自定义的格式化，可只定义产生编辑和删除按钮。"%>

<%@ attribute name="actionsWidth" required="false"
	type="java.lang.Integer"
	description="操作栏宽度，只有在cusFormatterActions不为false时有效。"%>


<%@ attribute name="cusEditUrl" required="false" type="java.lang.String"
	description="在定义cusFormatterActions为true有效，指定编辑页面的连接地址。"%>

<%@ attribute name="cusViewUrl" required="false" rtexprvalue="true"
	type="java.lang.String" description="设置用于查看的URL地址。 默认值:null"%>

<%@ attribute name="cusDeleteUrl" required="false"
	type="java.lang.String"
	description="在定义cusFormatterActions为true有效，指定删除数据的url。"%>

<%@ attribute name="cusActions" required="false" type="java.lang.String"
	description="可以为一个javascript函数或者一段javascript代码，其可用参数为rowObject,设置后将会附加到操作拦"%>


<%@ attribute name="cusDialogOnThisWindow" required="false"
	type="java.lang.Boolean" description=""%>


<%@ attribute name="cusDialogSize" required="false"
	type="java.lang.String"
	description="在定义cusFormatterActions为true有效，如果定义此项将会覆盖cusDialogWidth及cusDialogHeight的属性。默认使用normal"%>

<%@ attribute name="cusDialogWidth" required="false"
	type="java.lang.Integer"
	description="在定义cusFormatterActions为true有效，指定编辑页面的窗口宽度。"%>
<%@ attribute name="cusDialogHeight" required="false"
	type="java.lang.Integer"
	description="在定义cusFormatterActions为true有效，指定编辑页面的窗口高度。"%>
<%@ attribute name="ondbClickRowEvent" required="false"
	type="java.lang.String"
	description="在定义cusFormatterActions为true有效，双击行时触发的事件。(包括OndbClickRowEvent(rowid,iRow,iCol,e);)。默认为Edit"%>
<%@ attribute name="onSelectRow" required="false"
	type="java.lang.String" description=" (包括onSelectRow(rowid,status);)。"%>
<%@ attribute name="onSelectAll" required="false"
	type="java.lang.String"
	description=" (包括onSelectAll(aRowids,status);)。"%>
<%@ attribute name="advanceSearch" required="false"
	type="java.lang.Boolean" description=""%>

<%@ attribute name="keywordFields" required="false"
	type="java.lang.String" description=""%>

<%@ attribute name="keywordFieldsOp" required="false"
	type="java.lang.String" description=""%>

<%@ attribute name="keywordTitle" required="false"
	type="java.lang.String" description=""%>

<%@ attribute name="showSearchbar" required="false"
	type="java.lang.Boolean" description=""%>

<%@ attribute name="showToolbar" required="false"
	type="java.lang.Boolean" description=""%>


<%@ attribute name="filterToolbar" required="false"
	type="java.lang.Boolean" description="filterToolbar"%>

<%@ attribute name="beforeCreateAction" required="false"
	type="java.lang.String"
	description="通过js返回点击添加前的操作，并返回url的参数。默认空,方法定义后不需要家分号"%>
<%@ attribute name="beforeEditAction" required="false"
	type="java.lang.String"
	description="通过js返回点击编辑前的操作，并返回url的参数。默认空,方法定义后不需要家分号"%>

<%@ attribute name="beforeDeleteAction" required="false"
	type="java.lang.String"
	description="通过js返回点击删除前的操作，并返回url的参数。默认空,方法定义后不需要家分号"%>

<%@ attribute name="afterActionsSuccess" required="false"
	type="java.lang.String" description="通过js在操作完成后触脚本。默认空"%>

<%@ attribute name="columnFilter" required="false"
	type="java.lang.Boolean" description="是否显示列头过滤器。默认false"%>

<%@ attribute name="excelExportUrl" required="false"
	type="java.lang.String" description="excelExportUrl。默认空"%>

<%@ attribute name="idFieldName" required="false"
	type="java.lang.String" description="idFieldName。默认id"%>

<%@ attribute name="loadonce" required="false" type="java.lang.Boolean"
	description="如果为true，表示只读取一次数据。默认false"%>

<%@ attribute name="hiddengrid" required="false"
	type="java.lang.Boolean"
	description="如果为true，开始时列表不读取数据。点击了按钮才读取。默认false"%>

<%@ attribute name="autoload" required="false" type="java.lang.Boolean"
	description="是否自动读取数据，默认为true。"%>

<%@ attribute name="showPager" required="false" type="java.lang.Boolean"
	description="是否显示分页器，默认为true。"%>
<%@ attribute name="grouping" required="false" type="java.lang.Boolean"
	description="是否分组显示。"%>
<%@ attribute name="groupField" required="false" type="java.lang.String"
	description="配合grouping，表示用于分组的列"%>

<%@ attribute name="processKey" required="false" type="java.lang.String"
	description="流程Key。"%>

<%@ attribute name="rownumbers" required="false"
	type="java.lang.Boolean" description="行序号。"%>

<%@ attribute name="loadComplete" required="false"
	type="java.lang.String" description="loadComplete事件，可用参数：data"%>

<%@ attribute name="afterGridCreate" required="false"
	type="java.lang.String" description="grid被插件后触发"%>

<%@ attribute name="adSearchTb" required="false" type="java.lang.String"
	description="AdSearchTb"%>

<%@ attribute name="configColumns" required="false"
	type="java.lang.Boolean" description="default false"%>


<%@ attribute name="autoReloadGrid" required="false"
	type="java.lang.Boolean" description="autoReloadGrid"%>


<%@ attribute name="autoReloadTreeMenu" required="false"
	type="java.lang.String" description="autoReloadTreeMenu"%>

<%@ attribute name="editOrDeleteRightControl" required="false"
	type="java.lang.Boolean" description="是否对编辑、删除按钮做操作权限控制"%>

<c:set var="delimitor" value="|" scope="request" />
<c:set var="colNames" scope="request" />
<c:set var="colModel" scope="request" />
<c:set var="columns" scope="request" />
<c:set var="grid_sel_columns" scope="request" />

<c:set var="groupHeaders" scope="request" />

<c:set var="urlDatatype" value="${empty datatype ? 'json' : datatype}" />
<c:set var="varkeywordFieldsOp"
	value="${empty keywordFieldsOp ? 'cn' : keywordFieldsOp}" />
<c:set var="urlMtype" value="${empty mtype ? 'GET' : mtype}" />

<c:if test="${not empty processKey && 'json' ne datatype }">
	<c:set var="cusEditUrl"
		value="workflow/processRun/entry?processKey=${processKey}" />
</c:if>

<c:set var="cusActions"
	value="${empty cusActions  ? '\"\"' : cusActions}">
</c:set>

<c:set var="cusDialogMax" value="false" />
<c:set var="cusDialogOnThisWindow"
	value="${cusDialogOnThisWindow eq true ? true : false}">
</c:set>
<c:set var="rownumbers" value="${rownumbers eq false ? false : true}">
</c:set>

<c:set var="filterToolbar"
	value="${filterToolbar eq true ? true : false}">
</c:set>


<c:set var="gridAutowidth"
	value="${empty autowidth or autowidth eq true ? true : false}">
</c:set>
<c:set var="height" value="${empty height  ? 'auto' : height}">
</c:set>

<c:set var="keywordTitle" value="${keywordTitle }">
</c:set>

<c:if test="${empty keywordTitle}">
	<c:set var="keywordTitle" value="输入关键字查询">
	</c:set>
</c:if>

<c:set var="multiselect" value="false">
</c:set>

<c:if test="${multiselect eq true }">
	<c:set var="multiselect" value="true">
	</c:set>
</c:if>



<c:set var="width" value="${empty width? 'auto' : width}">
</c:set>

<c:set var="altRows" value="${altRows eq false ? false : true}">
</c:set>

<c:set var="ondbClickRowEvent"
	value="${empty ondbClickRowEvent ?'': ondbClickRowEvent}">
</c:set>


<c:set var="altRows" value="${altRows eq false ? false : true}">
</c:set>

<c:set var="shrinkToFit"
	value="${empty shrinkToFit or shrinkToFit eq true ? true : false}">
</c:set>

<c:if test="${columnFilter eq true}">
	<c:set var="columnFilterVal"
		value="$(this).jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false});"
		scope="request" />
</c:if>

<c:if test="${empty beforeCreateAction}">
	<c:set var="beforeCreateAction" value="true" scope="request" />
</c:if>
<c:if test="${empty beforeEditAction}">
	<c:set var="beforeEditAction" value="true" scope="request" />
</c:if>
<c:if test="${empty beforeDeleteAction}">
	<c:set var="beforeDeleteAction" value="true" scope="request" />
</c:if>


<c:if test="${empty idFieldName}">
	<c:set var="idFieldName" value="id" scope="request" />
</c:if>

<c:set var="loadonce" value="${loadonce eq true ? true : false}">
</c:set>

<c:set var="hiddengrid" value="${hiddengrid eq true ? true : false}">
</c:set>

<c:set var="autoload" value="${autoload eq false ? false : true}">
</c:set>
<c:set var="adSearchTb"
	value="${empty adSearchTb ? 'AdSearchTb' : adSearchTb}">
</c:set>
<c:if test="${empty urlExtScript}">
	<c:set var="urlExtScript" value="''" scope="request" />
</c:if>
<c:set var="gridview" value="${gridview eq true ? true : false}">
</c:set>
<c:set var="multikey" value="${multikey eq true ? true : false}">
</c:set>
<c:set var="listRowBottonIds" value="${fn:split(ids, delimitor)}"
	scope="request" />

<c:set var="listRowBottonUrls" value="${fn:split(urls, delimitor)}"
	scope="request" />

<c:set var="listRowBottonOperationCodes"
	value="${fn:split(operationCodes, delimitor)}" scope="request" />

<c:if test="${empty editOrDeleteRightControl}">
	<c:set var="editOrDeleteRightControl" value="false" scope="request">
	</c:set>
</c:if>

<c:forEach items="${listRowBottonIds}" var="bId" varStatus="s">
	<c:set var="rowButtonOperationCode"
		value="${listRowBottonOperationCodes[s.index]}" />

</c:forEach>
<jsp:doBody />
<%@attribute name="searchbar" fragment="true"%>
<%@attribute name="keyworkSearchbar" fragment="true"%>
<div id="${gridId}AdSearch"></div>
<c:if test="${empty showSearchbar or showSearchbar eq true }">
	<c:set var="showSearchbar" value="true"></c:set>
	<div id="${gridId}AdSearchHeader" class="gridAdSearchHeader"></div>
	<c:choose>
		<c:when test="${advanceSearch eq true }">
			<div id="${gridId}AdSearchTb" class="grid-search"
				id="${gridId}Filters">
				<div id="${gridId }KeywordInputPanel" class="keywordInputPanel">
					<input type="text" field="${keywordFields }"
						op="${varkeywordFieldsOp }" id="keywordInput" class="keywordInput"
						placeholder="${keywordTitle}">
					<button type="button" onclick="${gridId}.search();">
						<span class="icon icon-search"></span>查询
					</button>

					<a onclick="${gridId}.switchMoreSearch(this)" data-st="1"
						style="text-decoration: underline;cursor: pointer;">高级查询</a>
				</div>
				<div id="${gridId}MoreSearch" class="hidden">


					<jsp:invoke fragment="searchbar" />
					<div style="padding:10px 0;text-align: right">
						<button type="button" onclick="${gridId}.search();">
							<span class="icon icon-search"></span>查询
						</button>
						<button type="button"
							onclick="${gridId}.resetSearch('${gridId}AdSearchTb');">
							<span class="icon icon-search"></span>清空查询条件
						</button>
						<a onclick="${gridId}.switchMoreSearch(this)" data-st="2"
							style="text-decoration: underline;cursor: pointer;">关键字查询</a>
					</div>
				</div>
			</div>
		</c:when>
		<c:otherwise>

			<div id="${gridId}AdSearchTb" class="grid-search"
				id="${gridId}Filters">
				<jsp:invoke fragment="searchbar" />
			</div>
		</c:otherwise>
	</c:choose>

</c:if>
<%@attribute name="toolbar" fragment="true"%>
<c:if test="${empty showToolbar or showToolbar eq true }">

	<c:set var="showToolbar" value="true"></c:set>
	<div id="${gridId}AdToolbar" class="grid-toolbar"
		style="text-align: right">
		<jsp:invoke fragment="toolbar" />
		<c:choose>
			<c:when test="${advanceSearch eq true }">

			</c:when>
			<c:otherwise>
				<c:if
					test="${(configColumns eq true || (showToolbar eq true && showSearchbar eq true)) and (not empty excelExportUrl) }">
					<button type="button" onclick="${gridId}.setColModel()">
						<span class="icon icon-search"></span>导出到Excle
					</button>
				</c:if>

				<c:if test="${showSearchbar eq true}">
					<button type="button" onclick="${gridId}.search();">
						<span class="icon icon-search"></span>查询
					</button>
					<button type="button"
						onclick="${gridId}.resetSearch('${gridId}AdSearchTb');"
						class="grey">
						<span class="icon icon-magic"></span>清空
					</button>
				</c:if>
			</c:otherwise>
		</c:choose>

	</div>
</c:if>
<table id="${gridId}" class="isperpgrid">
	<tbody>
		<tr>
			<td>
			<td />
		</tr>
	</tbody>
</table>
<div id="${gridId }_columnsDialog" style="display:table" title="选择列">
	<ul id="${gridId }_columns" class="jqgrid-colmuns">${grid_sel_columns}
	</ul>
</div>
<c:choose>
	<c:when test="${empty showPager or showPager eq true }">
		<div id="${gridId}Pager"></div>
		<c:set var="showPager" value="true" />
	</c:when>
	<c:otherwise>
		<c:set var="showPager" value="false" />
	</c:otherwise>
</c:choose>
<%
  String rowList = null;

			java.lang.Object oshowPager = this.getJspContext().getAttribute(
					"showPager");
			if (oshowPager != null && "true".equals(oshowPager)) {
				if (rowNum == null) {
					rowNum = 15;
					rowList = "[10,15,30,50,100]";
				} else if (rowNum >= 15 && rowNum < 50) {
					rowList = "[10," + rowNum + ",50,100]";
				} else {
					rowList = "[10,30,50,100]";
				}
			} else {

				if (rowNum == null) {
					rowNum = 1000;
				}
				rowList = "[]";
			}
%>

<c:if test="${empty actionsWidth}">
	<c:set var="actionsWidth" value="60" scope="request" />
</c:if>


<c:set var="grouping" value="${grouping eq true ? true : false}">
</c:set>

<c:set var="configColumns"
	value="${configColumns eq true ? true : false}">
</c:set>
<c:set var="autoReloadTreeMenu"
	value="${empty autoReloadTreeMenu ? 'undefined' : autoReloadTreeMenu}">
</c:set>
<c:set var="autoReloadGrid"
	value="${autoReloadGrid eq true ? true : false}">
</c:set>

<c:choose>
	<c:when test="${empty postData}">
		<c:set var="postDataValue" value="pageable:${showPager }" />
	</c:when>
	<c:otherwise>
		<c:set var="postDataValue" value="${postData},pageable:${showPager }"
			scope="request" />
	</c:otherwise>
</c:choose>

<sec:authorize url="${cusDeleteUrl }">
	<c:set var="cusDeleteUrlAuth" value="${cusDeleteUrl }"></c:set>
</sec:authorize>
<sec:authorize url="${cusEditUrl }">
	<c:set var="cusEditUrlAuth" value="${cusEditUrl }"></c:set>
</sec:authorize>

<script type="text/javascript">
        document.onkeydown=function(event){
            var e = event || window.event || arguments.callee.caller.arguments[0];
             if(e && e.keyCode==13){
              var obj=document.activeElement;
              if(obj.tagName.toLocaleLowerCase()=='input' || obj.tagName.toLocaleLowerCase()=='body')
              {
                 ${gridId}.search();
              }
              
            }
        }; 

var ${gridId}=$("#${gridId}").grid({id:"${gridId}",url :  "${url}",title:"${gridTitle}",
	datatype : "${urlDatatype}",urlExtScript:${urlExtScript},mtype : "${urlMtype}",adSearchTb : "AdSearchTb",
	columnFilter : "${columnFilter}",editurl : "${editurl}",idFieldName : "${idFieldName}",processKey:"${processKey}",
	autowidth : ${gridAutowidth},width:"${width}",height:"${height}",rowList:<%=rowList%>,rowNum:<%=rowNum%>,rownumbers:${rownumbers},
	viewrecords: true,forceFit:true,sortname:"${sortname}",sortorder:"${sortorder}",altRows:${altRows},altclass:"gridAltclass",
	multiselect:${multiselect},loadonce:${loadonce},hiddengrid:${hiddengrid},gridview:${gridview},shrinkToFit:${shrinkToFit},
	postData:{${postDataValue}},autoload:${autoload},multikey:${multikey},multiselect:${multikey},
	actions : {cusColModel:[${colModel}],configColumns:${configColumns},showToolbar:${showToolbar},showSearchbar:${showSearchbar},
		cusFormatterActions:"${cusFormatterActions}",cusActions : function(rowObject){return ${cusActions}},
		actionsWidth:${actionsWidth},excelExportUrl : "${excelExportUrl}",cusEditUrl : "${cusEditUrlAuth}",
		cusViewUrl : "${cusViewUrl}",cusDeleteUrl : "${cusDeleteUrlAuth}",beforeCreateAction :function(){return ${beforeCreateAction}},
		beforeEditAction:function(id){return ${beforeEditAction}},beforeDeleteAction:function(rowid){return ${beforeDeleteAction}},afterActionsSuccess:function(){return ${afterActionsSuccess}},autoReloadGrid:${autoReloadGrid},autoReloadTreeMenu:${autoReloadTreeMenu}},
	cusDialog : {cusDialogWidth : "${cusDialogWidth}",cusDialogHeight : "${cusDialogHeight}",cusDialogSize : "${cusDialogSize}",	cusDialogMax : "${cusDialogMax}",onThisWindow:${cusDialogOnThisWindow}},
	groupHeaders:[${groupHeaders}],cusGroup:{grouping:"${grouping}",groupField:"${groupField}"},
	loadComplete :function(data){if(${filterToolbar}){${gridId}.jqGrid.jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false,defaultSearch:'cn'});} ${targetGridLoaded} ${loadComplete} },
	ondbClickRowEvent:function(rowid,iRow,iCol,e){${ondbClickRowEvent}},
	onSelectRow:function(rowid,status){${onSelectRow}},
	onSelectAll:function(aRowids,status){${onSelectAll}},editOrDeleteRightControl:${editOrDeleteRightControl}
});
${afterGridCreate}
</script>